package edu.gamedemo; import android.content.Context; import android.provider.Settings.Secure; import android.telephony.TelephonyManager; import android.util.Log; public class GameUtil { private static final String TAG = "GameUtil"; // 生成唯一表示硬件序列号 http://hi.baidu.com/weizi/item/f1d6671030e7e68d88a95638 public static String getSerialNumber(Context ctx){ // androidId 2.2的版本并不是100%可靠 String androidId = Secure.getString(ctx.getContentResolver(), Secure.ANDROID_ID); if(androidId == null || "".equals(androidId)){ // deviceId也不是100%可靠 TelephonyManager tm = (TelephonyManager)ctx.getSystemService(Context.TELEPHONY_SERVICE); String deviceId = tm.getDeviceId(); // UUID,但系统清除数据就没有用了 if(deviceId == null || "".equals(deviceId)){ return MD5.crypt(Installation.id(ctx)); } return MD5.crypt(deviceId); } return MD5.crypt(androidId); } public static String getDeviceInfo(Context ctx) { TelephonyManager tm = (TelephonyManager) ctx.getSystemService(Context.TELEPHONY_SERVICE); StringBuilder sb = new StringBuilder(); sb.append("\nDeviceId(IMEI) = " + tm.getDeviceId()); sb.append("\nDeviceSoftwareVersion = " + tm.getDeviceSoftwareVersion()); sb.append("\nLine1Number = " + tm.getLine1Number()); sb.append("\nNetworkCountryIso = " + tm.getNetworkCountryIso()); sb.append("\nNetworkOperator = " + tm.getNetworkOperator()); sb.append("\nNetworkOperatorName = " + tm.getNetworkOperatorName()); sb.append("\nNetworkType = " + tm.getNetworkType()); sb.append("\nPhoneType = " + tm.getPhoneType()); sb.append("\nSimCountryIso = " + tm.getSimCountryIso()); sb.append("\nSimOperator = " + tm.getSimOperator()); sb.append("\nSimOperatorName = " + tm.getSimOperatorName()); sb.append("\nSimSerialNumber = " + tm.getSimSerialNumber()); sb.append("\nSimState = " + tm.getSimState()); sb.append("\nSubscriberId(IMSI) = " + tm.getSubscriberId()); sb.append("\nVoiceMailNumber = " + tm.getVoiceMailNumber()); Log.e("info", sb.toString()); return sb.toString(); } }